Embodiments of the present invention relate to computer software, and more particularly relate to techniques for facilitating the reuse of a browser-based thin client of a client-server application in a browser-independent context.
In the late 1980's and early 1990's, many business applications were developed using a “thick client”-based client-server architecture. These applications, which included both a client-side and server-side component, were structured so that the client-side component (i.e., thick client) performed the bulk of the application processing (e.g., user interface generation, logic processing, etc.). An example of such a thick client-based application is Oracle Forms, developed by Oracle Corporation.
As the Internet grew in popularity in the mid to late 1990's, many organizations re-architected their existing, thick client-based applications so that they could be accessed via the World Wide Web (WWW). This process generally involved moving functions previously performed by the thick client to a middle tier layer running on a server-side machine. This allowed users to access the application via a lightweight “thin client” running in a standard web browser. In these implementations, the thin client was typically a JAVA applet or some other type of browser-based software component, and was configured to perform relatively simple tasks such as presenting user interfaces generated by the server, capturing user inputs, and the like.
Now there is a growing trend towards building browser-independent composite applications. These applications do not require a web browser, and enable users to view and interact with user interfaces from one or more component applications. For example, one type of browser-independent composite application may incorporate user interfaces from one or more legacy client-server applications. To achieve this, it would be advantageous to reuse existing browser-based thin clients for the legacy client-server applications in the context of the browser-independent composite application.
However, reusing a browser-based thin client in a browser-independent context is challenging for several reasons. For example, in many cases, existing browser-based thin clients depend on web browser features (i.e., cookies, HTML forms, etc.) to handle security for interacting with their respective servers. In further cases, existing browser-based thin clients depend on the host web browser to handle the loading and caching of files, the receipt and passing of application parameters, and other functions.
Accordingly, it would be desirable to have techniques for reusing a browser-based thin client of a client-server application that overcome the challenges above.